package cn.kgm.makeGod.condition;

import cn.kgm.makeGod.Character;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

/**
 * @Version 1.8
 * @Author: Kappi
 * @Date: 2025-9-11 11:24
 * @Description: cn.kgm.makeGod.condition.Condition
 */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
        @JsonSubTypes.Type(value = LocationCondition.class, name = "location"),
        @JsonSubTypes.Type(value = RelationshipCondition.class, name = "relationship"),
        @JsonSubTypes.Type(value = PersonalityCondition.class, name = "personality"),
        @JsonSubTypes.Type(value = StatCondition.class, name = "stat")
})
public interface Condition {
    boolean check(Character actor, Character target, WorldState world);
}
